package com.vtuzx.kingdee.xqc_core.dao;

import com.vtuzx.core.constant.IVtuzxConst;
import com.vtuzx.core.db.mongo.impl.VtuzxDaoImpl;
import com.vtuzx.kingdee.xqc_core.constant.OperationType;
import org.bson.Document;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 * 操作履历履历Dao
 */
@Component
public class OperationHistoryDao extends VtuzxDaoImpl {
    /** 集合名称 */
    public static final String NAME = "t_operation_history";

    public OperationHistoryDao() {
        super(NAME);
    }

    /**
     * 追加履历
     *
     * @param _userId 用户ID
     * @param userName 用户名
     * @param type 操作类型
     * @param billNo 关联单据号
     * @param content 操作说明
     */
    public void addHistory(ObjectId _userId, String userName, OperationType type, String billNo, String content) {
        this.insertOne(new Document("_userId", _userId)
                .append("userName", userName)
                .append("type", type.toString())
                .append("typeName", type.label())
                .append("billNo", billNo)
                .append("content", content));
    }

    /**
     * 追加履历
     *
     * @param userName 用户名
     * @param type 操作类型
     * @param billNo 关联单据号
     * @param content 操作说明
     */
    public void addHistory(String userName, OperationType type, String billNo, String content) {
        this.insertOne(new Document("userName", userName)
                .append("type", type.toString())
                .append("typeName", type.label())
                .append("billNo", billNo)
                .append("content", content));
    }

    /**
     * 追加履历
     *
     * @param _userId 用户ID
     * @param userName 用户名
     * @param type 操作类型
     * @param content 操作说明
     */
    public void addHistory(ObjectId _userId, String userName, OperationType type, String content) {
        this.insertOne(new Document("_userId", _userId)
                .append("userName", userName)
                .append("type", type.toString())
                .append("typeName", type.label())
                .append("billNo", "")
                .append("content", content));
    }

    /**
     * 追加履历
     *
     * @param userName 用户名
     * @param type 操作类型
     * @param content 操作说明
     */
    public void addHistory(String userName, OperationType type, String content) {
        this.insertOne(new Document("userName", userName)
                .append("type", type.toString())
                .append("typeName", type.label())
                .append("billNo", "")
                .append("content", content));
    }
}